mod prime_factor;

fn main() {
    let number = 14851502813457000799;
    let res = prime_factor::find_max_prime_factor(number);
    println!("{number}'s max prime factor: {res}");
    // subjective_testing()
}

// fn subjective_testing() {
//     const FREQUENCY: usize = 30;
//     const TEST_CASES: &[u128] = &[
//         10000071, 600851475143, 1600851475143, 76008514751430, 96008514751430, 99999999951437,
//         1199999999951437, 9999999999999951437, 97993999919999958437, 199999999999999951437, 
//         14851502813457000799, 3183627274266828089483, 
//     ];
//     let mut res = 0_f64;
//     for i in 0..FREQUENCY {
//         let start = std::time::Instant::now();
//         for input in TEST_CASES {
//             prime_factor::find_max_prime_factor(*input);
//         }
//         let duration = start.elapsed().as_secs_f64();
//         res += duration;
//     }
//     println!("{:.4} Secs", res / FREQUENCY as f64);
// }